Зачем ты даёшь предмет?
Если предмет используется сразу при поднятии, то его нужно удалить.
Ну и желательно сделать с таймером, а не паузой.
Здравствуйте)
Даю пустой предмет, который используется сразу при поднятии (как книги), что бы он запустил следующий триггер.
Ибо даже не подумал про таймеры, а через паузу в одном триггере всё это уместить не получилось.
Спасибо за совет, попробую всё сделать иначе!)
function MeleeStartingAI takes nothing returns nothing
local integer index
local player indexPlayer
local race indexRace
set index = 0
loop
set indexPlayer = Player(index)
if (GetPlayerSlotState(indexPlayer) == PLAYER_SLOT_STATE_PLAYING) then
set indexRace = GetPlayerRace(indexPlayer)
if (GetPlayerController(indexPlayer) == MAP_CONTROL_COMPUTER) then
// Run a race-specific melee AI script.
if (indexRace == RACE_HUMAN) then
call PickMeleeAI(indexPlayer, "human.ai", null, null)
elseif (indexRace == RACE_ORC) then
call PickMeleeAI(indexPlayer, "orc.ai", null, null)
elseif (indexRace == RACE_UNDEAD) then
call PickMeleeAI(indexPlayer, "undead.ai", null, null)
call RecycleGuardPosition(bj_ghoul[index])
elseif (indexRace == RACE_NIGHTELF) then
call PickMeleeAI(indexPlayer, "elf.ai", null, null)
else
// Unrecognized race.
endif
call ShareEverythingWithTeamAI(indexPlayer)
endif
endif
set index = index + 1
exitwhen index == bj_MAX_PLAYERS
endloop
endfunction
Лучше не надо т.к. ИИ просто сломается. У него всё до мелочей рассчитано.
Можно сделать так, что бы ты мог управлять ИИ, но он постоянно будет что-то строить и каждую секунду управлять своими войсками, так что ты не сможешь им нормально управлять.
Я бы просто брал большой диапазон рандома (порядка 1000) и потом просто делил результат для получения нужного элемента. Этого обычно более чем хватает - условия и вспомогательные функции не нужны, только арифметика.
Раз уж в дело пошли диапазоны - можно сразу запилить взвешенный рандом вместо обычного - когда у каждого элемента в списке есть свой вес примерно определяющий насколько чаще других этот элемент будет выбираться.
Читал новое пользовательские соглашение? Потом разжевывали на одной из тем по патчам рефорджа. Близзарды перестраховались, и теперь низя в карту контент пихать, который не твой или свободно распростроняемый, в противном случае хоть 1 жалоба на твою карту - бан, любой мудак которому че-то не понравится может написать близардам, они не будут разбираться он хозяин контента или нет.
Правообладатели нарут и прочих аниме прав тебе никогда не дадут, даже разговаривать не будут, только юр. Лицаи только много денег, бомжи вроде нас с тобой им не интересны. Но при этом за спасибо тебе никто не даст прав делать карту в которой все бы бесплатно играли.
Если еще немного покопатса на сайте в разделе декораций - можно нагрести кучу добра!
И вобще мой вам совет - научитесь минимальному моделингу: сможете клепать такие вещи за 3 минуты на коленке с необходимым вам видом, формой и текстурой.
Если еще немного покопатса на сайте в разделе декораций - можно нагрести кучу добра!
И вобще мой вам совет - научитесь минимальному моделингу: сможете клепать такие вещи за 3 минуты на коленке с необходимым вам видом, формой и текстурой.
S2I принимает строку в качестве параметра и никак её не изменяет
с чего вдруг он должен создавать новые строки?
I2S создаёт временную строку
если в таблице есть строка равная временной по хэшу то он возвращает строку из таблицы
если в таблице строки нету то он добавляет нашу временную строку в таблицу
т.е. обычный алгоритм хэширования
Он лежит на случай если игре необходим данный реф. В РО ты мог иногда видеть необходимое приложение и варианты small, medium и large. Также по возможности спецэффекты и эффекты способностей могут к ней крепиться.
А collission насколько я помню отвечает за выделение или за столкновение летающих юнитов. На всякий случай оставляй, а то мало ли, да и места много не просит.
У меня есть один ресурс, называется "заклинатель духов" там задействована эта абилка. Посмотри, разберись что к чему. Ибо насколько я могу судить, ты скорее всего забыл добавить абилку герою в которого превращается паладин, и забыл указать в абилке пути метаморфоза. Но насколько я понял, тебе нужно просто заставить героя менять облик, иными словами чтобы он становился другим героем. Тогда лучше использовать мет. друида медведя. Мет. демон хантера рассчитан как усиливающая способность, в идеале она не подходит на 100% для обычной смены облика как у друида медведя.
Хотя ответ уже был дан, я всё-равно опубликую свою наработку.
Работает так:
В массивы заносятся необходимые данные.
При использовании предмета запускается цикл, который находит предмет из массива.
В зависимости от текущего и максимального уровня способности (последнее указывается в отдельном массиве) выполняются необходимые действия.
Конкретные и подробные объяснения находятся в комментариях к триггерам.
+ legroy,
Ваш пример слишком примитивен. Не учитывается, например, что изучаемых таким образом способностей может быть не один десяток и может возникнуть потребность в удобном наполнении. И что у способности может быть максимальный уровень.
Я думаю используя руну. Делать предмет в виде руны, отлавливать её использование и проверять предметы в инвентаре. Если есть нужные, то скрещивать, если нет, то создавать новую руну на земле такого же типа.
ворлдэдит=>Файл=>Параметры=>Общие=>Разрешить использ. отриц. значений в Редакторе Объектов.
Изменяешь значение после Шифт+Энтер. Способности приписываешь через запятую названиями переменных (показать ид - Контрол+Ди).
Так ты же выключаешь триггер на 18 секунд вот он и не срабатывает.
Поставь условие, что герыч не имеет абилки-пустышки, если не имеет - дать её и через 18 сек забрать и пустить молнию.
Правда я не уверен насчёт того, отловится ли attacking unit через 18 сек вейта, проверь...
Вообще, если устраивает орбом - то даёшь "сферу молний" с эффектом "цепь молний", у которой 18 сек перезарядка(у цепи не у сферы)
предмет это просто иконка которая содержит способности
книга заклинания это способность
и редактировать нужно способность "книга заклинаний"
или создать на её основе новую способность "моя книга заклинаний"
а потом у предмета просто указать способность "моя книга заклинаний"
если не хватает знаний то их можно пополнить в статьях
Первый вопрос. Проблема с триггерным перемещением возникает, если скорость объекта, движение которого подразумевается, равно 0. Поставь 1 и будет тебе счастье. Есть интересный способ обездвижить юнита. Это через SetUnitPropWindow. Поставь в аргументы юнита и число 0 и он перестанет двигаться.
Второй вопрос. В характеристиках твоего dummy-юнита в РО(редактор объектов) выставь поле: Наводка (контрольный радиус) (uerd) и поставь значение 0.00. Юнит не будет поворачиваться при выстреле.
Нужно дополнительно ещё отлавливать потерю предмета
Допустим герой теряет маску смерти, записываешь этот предмет в переменную
... ну а дальше что-то типа ждать 0.1 сек и очистить переменную (коряво, но должно работать)
Герой получает маска смерти И этот предмет является записанным в переменную
Значит он был только что выброшен другим героем и тут же поднят этим == передача...
вообще, скорей всегда есть какой-нибудь ордер выброса предмета из слота 1-6, что собственно и нужно отлавливать, а то что я описал выше - очень корявый костыль.
. . . ПИЩА ДЛЯ РАЗМЫШЛЕНИЙ . . .
Как минимум, есть смысл искать положение предмета, т.к. если ты его выбрасываешь - его положение становится очевидным (его координаты), а если подбираешь и носишь с собой - его положение является тем самым, которое было в момент подбора (как ни странно, но всё же логично). И вот если герой подбирает предмет, который чисто физически находится от него ОЧЕНЬ далеко, и он НЕ СМОГ бы САМ его поднять... вот тогда имеет смысла задуматься о том, как он его получил...
... в добавление к этому, можно вообще организоваться всё таким образом, что ВСЕ ПОДОБРАННЫЕ предметы автоматически выкидываются на какой-нибудь край карты (что с технической стороны не очень-то и правильно, но всё же), и перемещаются заново куда нужно при выбросе (это стандартный механизм). В при получении предмета проверять где он находится - если на краю карты = он был в инвентаре. Иначе - на земле около героя.
При этом есть ещё один нюанс - когда герой теряет предмет он всё ещё владеет этим предметом (такой ответ возвращает проверка).
Если / Тогда / Иначе, Функции
В Если Герой - (Предмет, которым манипулируют) у (Переключающий юнит) равно Да, в Тогда все твои действия в этом триггере. Или Герой - (Переключающий юнит) имеет (Предмет, которым манипулируют) равно Да
Отлично, значит мы можем однозначно соотнести номер игрока с юнитом в массиве?
переключившихся в летающий режим героев добавляем в глобальную группу
запускаем таймер на малом периоде, что-то около 0.04, который перебирает всех в группе и выполняет смещение к взятой из массива точке со скоростью движения героя (тут можно экспериментировать с разными алгоритмами движения, главное что все данные мы можем легко получить из массива по номеру игрока которому принадлежит юнит)
отслеживаем все приказы для героев в состоянии полета и на основе этого запоминаем текущую точку куда юнит должен двигаться и прочие данные, записываем эти данные в массив
при отключении полета убираем героя из группы и перестаем отслеживать его приказы
А, т.е. в карте уже есть системы триггерного движения? Значит самое время унифицировать их в одну, чтобы одна и та же система управляла и полетом и физикой и другими видами триггерного движения.
Файл - экспорт всего РО, открываешь свою карту Файл - импорт всего РО. Если нужно слияние, то может помочь Grimoire, что в комплекте с JNGP идёт, но я им не пользовался.
Как именно может помочь? Сейчас скачал JNGP, и толком не пойму как это дело провернуть, чтобы не было замены объектов которые я создавал теми что импортирую.
Я наконец-то смог найти то что нужно, благодаря помощи нескольких чуловеков.)
datalovaa, если речь о моделях на Варкрафт, то смысла вообще от платных заказов нет, проще научиться самому это делать, а если речь о 3д моделях, то есть сайты фриланса, где ты можешь получить все ответы по вопросам цены такой работы, но учитывай, что скорее всего у тебя не хватит денег оплатить их работу)
На сайте Эльрат делал модели платно, а также на хайве можешь обратиться.
Определил причину невидимости модели после сохранения в war3me. В Geoset Animation Manager должна стоять Alpha 1, а он почему-то делает 0 или -1.
Поставил в Geoset Animation Manager не глобальные Color и Alpha, а для первых кадров всех 6 анимаций. Стало всё нормально и триггерные костыли не нужны.
Модель красного свечения ауры на юнитах:
Думаю, можно обойтись без тайлов.
Нужно сделать ето в JNGP.
Когда юзаеш способность, то сохраняєш координати точки, на какую юзнул способность (AbilityTarget),
тогда проверяєш тип проходимости для нее: если проходимо для летающих и не проходимо для пеших и проходимо для земноводных, то ето вода, тогда с некоторим шансом создаеш рибу.
всего 1 строчку. всего 1 аргумент. с нуля на 270 поменял и все. стандартное ориентация зданий = 270 град, записана в переменную. хотел чтобы вы сами помучались. пробуй брать гуи,конвентировать в код. сравнивали. пример статьи читали бы.
При осмотре карты тоже не совсем понял почему игра перестает строительство. Как решение, ты можешь даммику строительства поменять расу на нежить, таким образом уже здание само будет достраиваться.
Поскольку у тебя на карте при беглом осмотре юнитов строителей я не заметил, то выше указанное решение как раз то что нужно тебе.
П.С.
Под какую версию игры рассчитана данная карта?
JNGP снимает ограничения (например максимум декорации 20к), если обычным редактором открыть критует. В jngp есть новые гуишные функции, которых нет в обычном, стандартный редактор их не распознает. Юзайте поиск, такой вопрос уже задавали
карта "защищена"
простыми способами нельзя переводить и вообще в редакторе открывать, в теории можно в редакторе открыть, но нужен полный листфайл, который надо часами/днями восстанавливать специальной утилитой (а судя по тому что там сотни неизвестных файлов, на это уйдет очень много времени)
Ну и конечно есть ещё вариант - это редактирование scripts\war3map.j и war3map.wts
Первый это скрипт карты, через поиск " можно найти все строки
Второй это хранилище строк НО
Ещё придется редактировать объектные файлы: w3a, w3u, w3t и т.д., полный список есть в статьях по форматам данных
А если в редакторе карту не открыть без последствий - то придется пересаживать эти объектные файлы в другую карту (вместе с war3map.wts, т.к в объектных файлах могут ссылки на строки), там всё перевести и перекинуть обратно в исходник
Заинтересовался и решил попробовать сделать. Для скорости взял Торнадо (замедление), где поставил вместо отрицательного модификатора положительный, а для восстановления здоровья ауру фонтана жизни. Сделал три триггера для способности, плюс триггер на случайное движение войск:
Инициализации триггер при изучении способности добавляет герою ауру замедления, которая на самом деле ускоряет, просто поленился менять описание. Этот триггер надо отключить после использования, добавив действие Turn off (This trigger);
Первый триггер должен был убирать ауру замедления и давать ауру восстановления, но у меня никак не получалось указать правильное событие для способности, срабатывали одновременно и первый, и второй триггеры. Тогда я поставил в событие приказ без указания цели, указал в условии immolation, всё стало нормально функционировать;
Второй триггер наоборот убирает ауру замедления и даёт ауру восстановления при приказе unimmolation.
Кроме того, что эта способность является приказом, интересно и то, что аура восстановления не действовала, если её просто скопировать в нестандартные способности, ничего не изменив, а аура замедления не действовала, если изменить её радиус действия с 600 до 900.
P. S. Там ещё триггер надо сделать, когда у героя мана заканчивается для применения способности, так как аура восстановления не пропадает, а аура замедления не появляется.
Потому что вы блокируете мультишот. Запрет спеллбука не запрещает способности, находящиеся в нем. Но запрет самих способностей, внезапно, запрещает их.
отменять постройку юнита если технология уже ап
либо как сразу говорили через ап здания
где каждому твоему зданию будет соответствовать такое же здание но с дополнительным слотом
с продажей юнита открываешь доту и смотришь как там сделан спелл передать предметы у куры
он сделан как раз через продажу юнита
иначе никак
если не нравится пожалуйся богу об этом
или близардам
пусть выпустят новый патч специально для тебя
Maxsavin, молодые, зеленые, все то вам объяснять надо.
Берете карту, делаете копию, вычищаете из неё триггер за триггером, юнита за юнитом, кусочек карты за кусочком, пока либо не пройдет баг, либо в карте не останется ничего, что бы вы не были готовы показать. Да, проверять надо после каждого удаления, а не удалять все скопом. Да, это долго, но другого способа нет.
В первом случае (баг прошел после очередного удаления) - причина найдена и можно детально исследовать.
Во втором случае (удален весь "секретный" контент, а баг остался) - можно смело показывать карту и просить помощи.
P.S. главное не забыть, что удалять надо из копии карты, а не из единственного существующего исходника. Ответственности за потерю единственной рабочей версии в результате неправильного использования этого метода не несу.
Ищи методом исключения - выключил часть триггеров, нет зависания - значит дело в них. Кстати такая была проблема в footman, но затем она прошла сама собой.
А что мешает поставить время жизни 0 сек, тогда у него не будет таймера жизни и он не помрет по истечению времени.
Используя событие - юнит призвал юнита, можно установить желаемое время жизни призванного юнита.
это понятно, лучше на изображение показать как это делать а то я в недоумение
решил вопрос...не надо еще один диалог создать достаточно кнопку, после показа skip с названием предмета в инвентаре я присвоил другую переменную Button2 [Integer A] и точно также с другим, и в отдельном триггере проверяю на какую кнопку я потыкал и даю этот предмет складу и наоборот циклом от 1 до 6. спасибо.
Я решил это через отслеживание начала заклинания, после чего ставил юнита на паузу на 20 сек с проигрыванием анимации. т.е. способность не завершалась, но выгляедло это так, как будто она завершилась
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе
В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.
Только там такой срач и дичь, что лучше реально своими руками с нуля писать...
JNGP снимает ограничения (например максимум декорации 20к), если обычным редактором открыть критует. В jngp есть новые гуишные функции, которых нет в обычном, стандартный редактор их не распознает. Юзайте поиск, такой вопрос уже задавали
Там есть для Игрока (или Игры) действие Force UI Key. Назначаешь горячую клавишу книге и при событии выбора указываешь в этом действии свою клавишу.
Только событие выбора может реагировать с небольшой задержкой, достаточной, чтобы рассмотреть кнопки на панели приказов. Если это надо обойти, есть два варианта:
периодическим таймером на 0.03 секунды проверять, выбран ли юнит;
сделать два одинаковых типа юнитов, один из которых с классификацией страж, при выборе стража накладывать морф и открывать книгу (может потребоваться задержка), при снятии выбора накладывать обратный морф. Статья про морфы есть у quq_CCCP.
Нужна переменная, в которой хранить уже добавленное золото, чтобы не добавлять лишнего - изначально 0.
Каждые х сек, вычислять разницу между "Золота добыто" и этой переменной. Затем разницу добавлять к переменной и к золоту игрока.
Т.е. если триггер сработает после первых 5-и рабов, то даст 50 золотых.
Затем если перед следующим срабатыванием еще 2 раба принесут по 10 золота, то "Золото добыто" станет 70, а в переменной у нас 50 - триггер добавит еще 20 золота.
Пока нет желания разбираться, что у тебя так, а что не так. Но вижу, что переменная Window не назначена окну, а ещё как бы создаются в цикле одновременно 10 окон, которые потом все одновременно ждут 50 секунд. Вот скрин действий триггера вместо двух твоих, секунда ожидания поставлена для того, чтобы увидеть пропадание окна таймера.
Нади бесполезный оригинальный уберсплат, которого в твоей карте не будет, поставь у своего строения его, а свою текстуру импортируй по пути этого уберсплата. Это сработает 100%.
Во-вторых, если пробовать, то пробовать так.
Вытащить из War3Patch.mpq Splats/UberSplatData.slk.
Правильно добавить/заменить уберсплат туда.
Имортировать отредактированный файл в карту по пути Splats/UberSplatData.slk.
Импортировать текстуру по пути, что указан в UberSplatData.slk.
В РО через Shift+Enter прописать имя (4 латинские буквы) нужного уберсплата.
Сделал, как написал, всё работает.
Даже в редакторе видно. Возможно будет видно только после запуска карты через проверку.
раскрыть
Главное, всё верно сделать. Перед установкой кастомного уберсплата рекомендую сохранять карту. Если имя указано неверно и меняемые строения расставлены на карте, редактор закроется. Тоже самое будет при попытке поставить строение с неверно указанным уберсплатом.
Эти лаги происходят из-за всех триггеров в категории "Блокировка"
Т.к. там периодические события которые и приводят к лагам Приступаю к решению
Проблема решена
Проблема решена путем избавления от периодических событий
Т.е. я поставил происходящее событие"Юнит умирает" с проверкой "все ли юниты у игрока n умерли?" и если да то происходит запрет на подготовку юнита (например шаман) Если не понятно: Вот починенная карта
Близы вроде что-то свистели про то что исправят аж в 1.29 но что-то я не заметил каких-либо фиксов,тобишь сделать их "более умными","оптимизировать" "Приучать к нестандартным воинам" всего этого не было.И навряд-ли появится в следующем патче,если только бунт какой-нибудь не устроить.
Они столько багов наделали,что патч наоборот ухудшает игру.Впринципе триггерно можно их сделать без фризов и прочих тормозов,просто ИИ криво перенесли на новые патчи (Это моя догадка) поэтому и лагает
» WarCraft 3 / Отрицательный эффект предметам
» WarCraft 3 / Стандартные войска
» WarCraft 3 / Аниме карты для REFORGED
» WarCraft 3 / нужны модели
» WarCraft 3 / Проблема с Warcraft III 1 31
» WarCraft 3 / Отдельная панель
» WarCraft 3 / Не работают абилки на + ХП
» WarCraft 3 / Поднять предмет
» WarCraft 3 / Вопрос по редактору объектов
» WarCraft 3 / Модели на заказ
» WarCraft 3 / Ищу движение на WASD как в Blood Omen: Legacy of Kain
» WarCraft 3 / Не открывается карта (Jass New Gen Pack Rebuild)
» WarCraft 3 / Создание ролика
» WarCraft 3 / Иконка знака вопроса?
» WarCraft 3 / Не работает способность
» WarCraft 3 / Как сделать улучшение для конкретного юнита?
» WarCraft 3 / Проблема с картой
» WarCraft 3 / Как убрать дождь
» WarCraft 3 / Как поставить стоимость юнита в мане
» WarCraft 3 / Отслеживание
» WarCraft 3 / Не открываются триггеры
» WarCraft 3 / Просмотр реплеев
» WarCraft 3 / Как сделать чтобы триггер не повторялся?
» WarCraft 3 / Лаги в карте
» WarCraft 3 / Как изменить тип атаки героя который купил предмет?